package wt.rocket.widget;

import org.zkoss.zk.ui.event.Event;
import org.zkoss.zk.ui.event.EventListener;
import org.zkoss.zk.ui.event.Events;
import org.zkoss.zul.A;
import org.zkoss.zul.Messagebox;
import wt.rocket.general.Sesion;
import wt.rocket.model.bean.Persona;

/**
 * Extensión de Widget: Link
 *
 * @author Waytech
 */
public class LinkNombrePersona extends A {

  int idPersona;
  String nombre;
  protected String email;
  protected String telefono;
  protected String direccionCorta;
  Persona persona;

  /**
   * Crea el link con el nombre de la persona
   *
   * @param label el nombre de la persona
   */
  public LinkNombrePersona(String label) {
    //llamada al constructor de clase org.zkoss.zul.A
    super(label);
  }

  public LinkNombrePersona(Persona p) {
    super(p.getNombre());
    setPersona(p);
    programarEventoClick();
  }

  private void programarEventoClick() {
    this.addEventListener(Events.ON_CLICK, new EventListener() {

      public void onEvent(Event event) throws Exception {
        //debug:
        System.out.println("LinkPersona -> id = " + persona.getId());
        System.out.println("LinkPersona -> nombre = " + persona.getNombre());

        String mensaje = "Persona. Id: " + persona.getId()
                + ". Nombre: " + persona.getNombre()
                + ". Teléfono: " + persona.getTelefono()
                + ". Correo: " + persona.getEmail()
                + ". Dirección: " + persona.getDireccionCorta();

        Messagebox.show(mensaje, "Persona Resumen", Messagebox.OK, Messagebox.INFORMATION);
        //Para efectos prácticos se muestra la data en un Messagebox, pero se puede usar otra vista diseñada por el usuario,
        //a la cual se pasa la data usando variables de sesión
      }
    });
  }
  
   public void asignarTooltip(String texto) {
    this.setTooltiptext(texto);
  }

  public Persona getPersona() {
    return persona;
  }

  final public void setPersona(Persona persona) {
    this.persona = persona;
  }

  //OTRO ENFOQUE DEL METODO, USANDO EL ID
  private void programarEventoClick(final int id) {
    this.addEventListener(Events.ON_CLICK, new EventListener() {

      public void onEvent(Event event) throws Exception {
        //debug:
        System.out.println("LinkPersona -> id = " + id);
        System.out.println("LinkPersona -> nombre = " + nombre);

        String mensaje = "Persona. Id: " + id
                + ". Nombre: " + nombre
                + ". Teléfono: " + telefono
                + ". Correo: " + email
                + ". Dirección: " + direccionCorta;

        Messagebox.show(mensaje, "Persona Resumen", Messagebox.OK, Messagebox.INFORMATION);

        //set variables de sesión:
        Sesion.setVariable("id", id);

      }
    });
  }

  public void setIdPersona(int id) {
    this.idPersona = id;
    programarEventoClick(id);
    asignarTooltip("Ver detalles");
  }

 
}
